#include "checa_status.h"

int conta_vizinhos(char **matriz, int x, int y, int larg, int alt) {
	int conta, i, j;
	conta = 0;
	for(i = y-1; i <= y+1; i++) {
		for(j = x-1; j <= x+1; j++) {
			if((i < 0) || (j < 0) || (i >= alt) || (j >= larg) || ((j == x) && (i == y)))
				continue;
			if(matriz[i][j] != TAB_NOMARK)
				conta++;
		}
	}
	return conta;
}

int checa_status(char **matriz, int x, int y, int larg, int alt) {
/*pra vivas e mortas
0 se morre
1: se vive*/
/*
    * Uma célula viva com menos de dois vizinhos morre (solidão).
    * Uma célula viva com mais de três vizinhos morre (superlotação).
    * Uma célula com dois ou três vizinhos sobrevive para a próxima geração.
    * Uma célula morta com exatamente três vizinhos renasce.
*/
	int v;
	v = conta_vizinhos(matriz, x, y, larg, alt);
	if(v < 2)
		return 0;
	else if(v > 3)
		return 0;
	else if(v == 3)
		return 1;
	else if(matriz[y][x] != TAB_NOMARK)
		return 1;
	else
		return 0;
}
